package docker

//docker net 的网络模式
//本章节前先看docker-0040-docker_net基础原理

/*

	目录：
		1.网络模式
		2.bridge
		3.host
		4.none
		5.container


---------------1.网络模式---------------



	网络模式

	bridge : 桥接 docker (默认，自己创建也使用bridge模式)，为每一个容器分配、设置IP等，并将容器连接到一个docker0的虚拟网桥，默认为该模式,默认为docker0。

	host : 和宿主机共享网络，不分配ip，和宿主机共享ip和端口;容器将不会虚拟出自己的网卡，配置自己的IP等，而是使用宿主机的IP和端口。

	none : 不配置网络;容器有独立的Network namespace，但并没有对其进行任何网络设置，如分配 veth pair和网桥连接，IP等。

	container : 容器内网络连通（用得少，局限大）;新创建的容器不会创建自己的网卡和配置自己的ip,而是和—个指定的容共享IP、端口范围等

	自定义网络

	//先为集群建立一个网卡
	docker network create --driver bridge --subnet 173.38.0.0/16 --gateway 173.38.0.1 redis-colony
	or
	docker network create  --subnet 173.38.0.0/16 redis-colony1


	--driver bridge
	--driver host
	--driver none
	--driver container:NAME或者容器id指定



---------------2.bridge---------------

	看图；  images/docker-net-043-veth-pair-桥接-bridge-网络模型-01.png
			image/docker-net-044-veth-pair-桥接-bridge-网络模型-02.png

---------------3.host---------------

	看图  images/docker-net-045-host-网络原理模型.png
		  images/docker-net-046-host-网络原理模型-docker-warning.png
		此图直接链接到宿主机的eth0，而不会连接docker0

	容器将不会获得一个独立的Network Namespace。而是和宿主机共用一个Network Namespace。
	容器将不会虚拟出自己的网卡而是使用宿主机的IP和端口。
	不会像 bridge 模式下一一分配/配对了




---------------4.none---------------

	禁用网络功能，只用用lo标识(lo :localhost 即127.0.0.1,表示本地回环)

	在none模式下，并不为Docker容器进行任何网络配置。
	也就是说，这个Docker容器没有网卡、IP、路由等信息，只有一个lo
	需要我们自己为docker容器添加网卡、配置IP等。



---------------5.container---------------

		看图 images/docker-net-047-container-网络原理模型.png

		图中右上侧容器和左上角容器共享ip等配置，但除了网络方面，其它如文件系统，进程列表等还是隔离的
		问题，左侧容器1启动时，右侧容器2可以共享ip，但当容器1停止或未启动是，容器2只能本地的lo回环
*/
